在eclipse的OSGI框架中,tracking service是OSGI很重要的一个功能,通过对服务的查询来动态的获取相应服务,例子:
我们建立两个bundle,一个是提供sayHello的服务,另外一个bundle来使用sayHello服务
1 | bundle 1: com.javaworld.sample.service |
1 | bundle 2: com.javaworld.sample.helloworld |
在helloservice中,HelloServiceActivator的bundle启动过程中会注册服务,
helloServiceRegistration = context.registerService(HelloService.class.getName(),
helloServiceFactory, null);
helloworld的bundle就可以通过service tracker的 getService来返回相应的service对象
1 | /* |
上次写了忘记给参考资料,实在抱歉。
参考资料: